// google-api.ts
import { appendFile } from 'fs';
import { Context } from 'koishi';

/**
 * 调用 FastAPI 代理服务以获取 Google 图片搜索结果
 * @param ctx Koishi Context 对象，用于发起 HTTP 请求
 * @param keyword 要搜索的关键词
 * @param api_key Google Custom Search API 密钥
 * @param search_engine_id 可编程搜索引擎 ID
 * @param page 结果页数，从1开始，默认为1
 * @param pagesize 每页结果数量，最大为10，默认为10
 * @param lang 语言设置，例如: zh-CN (简体中文), en (英文)，默认为zh-CN
 * @returns 返回一个 Promise对象，失败时抛出错误
 */
export async function getGoogleImages(
  ctx: Context,
  baseUrl: string,
  keyword: string,
  api_key: string,
  search_engine_id: string,
  page: number = 1,
  pagesize: number = 10,
  lang: string = 'zh-CN'
){
  const proxyUrl = `${baseUrl}/google_search/image`;

  try {
    const result = await ctx.http.get(proxyUrl, {
      params: {
        keyword,
        page,
        pagesize,
        lang,
      },
      headers: {
        'api-key': api_key,
        'search-engine-id': search_engine_id,
      },
    });

    return result;
  } catch (error) {
    const errMsg = `无法获取Google图片，请检查网络或API配置。error = ${error}`;
    throw new Error(errMsg);
  }
}
